package cn.wizzer.app.user.modules.services;

import cn.wizzer.app.user.modules.models.GroupLog;
import cn.wizzer.app.user.modules.models.enums.MsgTypeEnum;
import cn.wizzer.app.user.modules.models.enums.OprTypeEnum;
import cn.wizzer.app.user.modules.models.enums.RedPacketStatusEnum;
import cn.wizzer.framework.base.service.BaseService;
import cn.wizzer.framework.page.Pagination;

import java.util.List;
import java.util.Map;

public interface GroupLogService extends BaseService<GroupLog> {

    Pagination listPage(Integer pageNumber, Integer pageSize, String groupId);

    /**
     * 插入群消息，设置群成员未读
     * 返回 群消息 和群成员列表
     *
     * @param sendUserId
     * @param groupId
     * @param content
     * @param type
     * @param oprType
     * @param isDel
     * @return
     */
    Map<String, Object> groupSend(String sendUserId, String groupId, String content, MsgTypeEnum type, OprTypeEnum oprType, boolean isDel);

    /**
     * 根据用户ID 查询群消息是否已读列表
     *
     * @param userId
     * @return
     */
    String groupReadFlag(String userId);

    /**
     * 根据群ID删除所有聊天记录
     *
     * @param groupId
     */
    void delLog(String groupId);

    void delLogJob();

    /**
     * 更新
     *
     * @param redPacketId
     */
    void updateRedPacket(String redPacketId, RedPacketStatusEnum statusEnum);

}
